package com.ruoyi.ring.mapper;

import com.ruoyi.ring.domain.RingInteractiveSharing;
import com.ruoyi.ring.domain.dto.QueryShareDTO;
import com.ruoyi.ring.domain.vo.ShareListVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 互动分享Mapper接口
 * 
 * @author liuwp
 * @date 2025-11-21
 */
public interface RingInteractiveSharingMapper 
{
    /**
     * 查询互动分享
     * 
     * @param id 互动分享主键
     * @return 互动分享
     */
    public RingInteractiveSharing selectRingInteractiveSharingById(Long id);

    /**
     * 查询互动分享列表
     * 
     * @param ringInteractiveSharing 互动分享
     * @return 互动分享集合
     */
    public List<RingInteractiveSharing> selectRingInteractiveSharingList(RingInteractiveSharing ringInteractiveSharing);

    /**
     * 可以业务主键查询一条互动分享
     *
     * @param ringInteractiveSharing 互动分享
     * @return 互动分享集合
     */
    public RingInteractiveSharing selectOneRingInteractiveSharing(RingInteractiveSharing ringInteractiveSharing);

    /**
     * 新增互动分享
     * 
     * @param ringInteractiveSharing 互动分享
     * @return 结果
     */
    public int insertRingInteractiveSharing(RingInteractiveSharing ringInteractiveSharing);

    /**
     * 修改互动分享
     * 
     * @param ringInteractiveSharing 互动分享
     * @return 结果
     */
    public int updateRingInteractiveSharing(RingInteractiveSharing ringInteractiveSharing);

    /**
     * 条件修改互动分享
     *
     * @param ringInteractiveSharing 互动分享
     * @param ringInteractiveSharing 互动分享条件
     * @return 结果
     */
    public int updateRingInteractiveSharingCondition(@Param("ringInteractiveSharing") RingInteractiveSharing ringInteractiveSharing, @Param("ringInteractiveSharingCondition") RingInteractiveSharing ringInteractiveSharingCondition);

    /**
     * 删除互动分享
     * 
     * @param id 互动分享主键
     * @return 结果
     */
    public int deleteRingInteractiveSharingById(Long id);

    /**
     * 条件删除互动分享
     *
     * @param ringInteractiveSharing 互动分享
     * @return 结果
     */
    public int deleteRingInteractiveSharingByCondition(RingInteractiveSharing ringInteractiveSharing);

    /**
     * 批量删除互动分享
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteRingInteractiveSharingByIds(Long[] ids);

    /**
     * 获取互动分享及下所有点赞评论
     * @param shareDTO
     * @return
     */
    List<ShareListVO> queryShareList(@Param("shareDTO") QueryShareDTO shareDTO);
}
